草庐IT

3D 图形库

全部标签

windows - 如何将 Direct3D/WPF/DWM 窗口捕获到位图中?

捕获窗口图像的正常方法是调用:HDCSharedWndDC=GetWindowDC(SharedWnd);BitBlt(BitmapDC,0,0,width,height,SharedWndDC,0,0,SRCCOPY/*|CAPTUREBLT*/);ReleaseDC(SharedWnd,SharedWndDC);在运行DWM的系统上,它可以很好地捕获有问题的窗口,即使它被其他窗口重叠或部分离开屏幕,等等。但是,它在某些窗口(可能是那些使用WPF的窗口)上无法正常工作,并且会对玻璃区域产生一些有趣的影响。基本上,GDI捕获不适用于非GDI事物。我知道我真正想要的是获取Direct3D

python - 在 Python 中检测图形驱动程序信息

我有一个应用程序需要安装最低版本的NVIDIA图形驱动程序才能运行。如何获取在Windows上通过Python安装的驱动程序版本?编辑:一种通过注册表执行此操作的方法,它为您提供安装的所有版本(由Yojimbo提供)cmd=r'regquery"HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIACorporation\Installer2\Stripped"/s|find"Display.Driver/"'output=subprocess.check_output(cmd,shell=True)all=[float(x)forxinre.findall('Displ

windows - 是否有免费/开源的带有图形进度的类似 wget 的 Windows 程序?

我正在为我们的软件编写基于WiX的安装程序。我需要下载一些重要的依赖项(如SqlServerExpress2008),然后安装它们。我可以只使用wget,但是让控制台打开以显示进度对于非技术人员来说可能会非常困惑。相反,我一直在寻找一个像wget一样工作的程序,但在一个非常简单的窗口中显示它的进度,其中包含文件名和进度。如果我能显示一条小消息那会很棒,但主要是让GUI取得进展。我什至会对几乎执行此操作的现有程序感兴趣,我可以重新编译它以添加我需要的任何内容。由于这是在安装程序中,它不能依赖于.Net或任何其他需要安装才能工作的东西。有人知道这样的程序吗? 最

c# - 如何在 C# 的 Unity3D 中从 Steamworks API 获取 steamID?

我正在unity3d中用C#编写一个游戏。我安装了SteamworksAPI,现在我看到很多东西,比如getPersonaName()和avatar需要SteamID来获取它们。我想知道如何(即使是最简短的解释)为我指出正确的方向。P.s:在他们的支持页面上有一个文档链接。该文档中有获取您的姓名和“friend”姓名的示例,但这些示例使用了CSteamID变量,该变量的声明未知。 最佳答案 您应该可以调用:SteamUser.GetSteamID(); 关于c#-如何在C#的Unity3

windows - 您如何从源代码构建 Windows D3D9 refrast?

Microsoft将源代码分发给硬件供应商、驱动程序开发人员等,以引用其不同Direct3DAPI的实现。此代码使用一向神秘的WDK(以前称为DDK)构建系统构建,并且几乎从不在外部运行盒子。尽管被广泛使用,但此代码是半私有(private)的,因此在更广泛的网络上从来没有任何基本有用的信息可用。这已经足够常用(并且在这个社区中是众所周知的痛苦),并且基本构建信息不够敏感,应该可以在Google上发现它。构建自述文件建议使用WDK并使用命令build-cz-daytona进行构建。令人困惑的是,这会吐出一堆输出,但什么也没构建。克服这一点,带有WDK6001.18002的Vista,最

c++ - 来自 D3D 显示适配器 ID 的描述性监视器名称

正如问题所暗示的,我试图提取一个描述性的监视器名称以匹配显示适配器名称。下面的代码给了我一个像\.\DISPLAY1这样的设备ID,这是可以理解的,但不是我要找的。//Getname.D3DADAPTER_IDENTIFIER9d3dID;d3d9.Get().GetAdapterIdentifier(iAdapter,0,&d3dID);dispAd.name=d3dID.Description;//AddmonitorIDtodisplayadaptername.FIX_ME//Nothappywiththisyet!HMONITORhMonitor=d3d9.Get().GetA

windows - 在 windows/direct3d 中使用来自 ttf 文件的字体

我正在使用direct3d9并使用D3DXCreateFont创建一个字体对象,我可以使用它来将文本写入屏幕。但是我想使用TTF文件中的字体而不是已安装的字体。有什么方法可以从TTF文件创建字体对象,而无需首先将字体安装到我不想做的窗口中? 最佳答案 尝试使用AddFontResourceExFunction.回复:MSDNFontInstallationandDeletion 关于windows-在windows/direct3d中使用来自ttf文件的字体,我们在StackOverfl

c++ - 在现有图形应用程序上绘制 DirectX/OpenGL 图形

首先,如果这个问题已经得到解答,让我马上道歉,因为我可能只是在不规则的搜索条件下搜索它。我希望在使用DirectX绘制自己的图形(游戏)的应用程序中绘制2D图形。我将通过将DLL注入(inject)应用程序(我对此没有疑问,我可以做到)并绘制我的图形来做到这一点。但我不太擅长DirectX/OpenGL,所以我有几个基本问​​题要问。1)为了在该窗口上绘制图形,我是否需要从进程内存中获取预先存在的上下文,某种绘制场景的句柄?2)如果应用程序使用DirectX,我可以在上面使用OpenGL图形吗?请告诉我如何解决这个问题。任何细节将不胜感激:-)提前谢谢你。

c++ - 检索要通过网络发送的 ID3D11Texture2D 数据

我正在修改桌面复制api示例kindlyprovidedbyMicrosoft捕获屏幕并通过网络将更新发送到我的应用程序。我知道如何实际发送数据;我的问题是从ID3D11Texture2D对象获取数据。ID3D11Texture2D*m_AcquiredDesktopImage;IDXGIResource*desktopResource=nullptr;DXGI_OUTDUPL_FRAME_INFOFrameInfo;//GetnewframeHRESULThr=m_DeskDupl->AcquireNextFrame(500,&FrameInfo,&desktopResource);

c++ - 如何确定安装了哪个版本的 Direct3D?

我们有一个应用程序需要使用Direct3D。具体来说,它至少需要DirectX9.0c版本4.09.0000.0904。虽然这应该存在于所有较新的XP机器上,但它可能不会安装在较旧的XP机器上。我如何以编程方式(使用C++)确定它是否已安装?我希望能够向用户提供Direct3D将不可用的信息消息。 最佳答案 调用DirectXSetupGetVersion:http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.directsetup.directxsetupget